﻿//
// GrepEngine
//
// Copyright (C) 2011 - Tatsuya Niioka
//
using System;

namespace GrepEngine
{
    /// <summary>
    /// 文字コード変換イベントデータが格納されているクラス
    /// </summary>
    public class CharCodeConvertedEventArgs : EventArgs
    {
        #region FileName
        private string m_fileName;
        /// <summary>
        /// ファイル名を取得します。
        /// </summary>
        public string FileName
        {
            get { return m_fileName; }
            private set { m_fileName = value; }
        }
        #endregion

        #region Size
        private long m_size;
        /// <summary>
        /// サイズを取得または設定します。
        /// </summary>
        public long Size
        {
            get { return m_size; }
            set { m_size = value; }
        }
        #endregion

        #region Encoding
        private string m_encoding;
        /// <summary>
        /// エンコーディング名を取得または設定します。
        /// </summary>
        public string Encoding
        {
            get { return m_encoding; }
            set { m_encoding = value; }
        }
        #endregion

        #region IsEncodingConvert
        private bool m_isEncodingConvert = false;
        /// <summary>
        /// 文字コード変換状況を取得します。
        /// </summary>
        public bool IsEncodingConvert
        {
            get { return m_isEncodingConvert; }
            private set { m_isEncodingConvert = value; }
        }
        #endregion

        #region IsEndLineConvert
        private bool m_isLineEndConvert = false;
        /// <summary>
        /// 改行コードを取得します。
        /// </summary>
        public bool IsLineEndConvert
        {
            get { return m_isLineEndConvert; }
            private set { m_isLineEndConvert = value; }
        }
        #endregion

        #region Constructor
        /// <summary>
        /// 指定したファイル名、サイズ、エンコーディング、文字コード変換状況、改行コード変換状況で、新しい<see cref="CharCodeConvertedEventArgs"/>クラスを生成します。
        /// </summary>
        /// <param name="fileName">ファイル名</param>
        /// <param name="size">サイズ</param>
        /// <param name="encoding">エンコーディング</param>
        /// <param name="isEncodingConvert">文字コード変換状況</param>
        /// <param name="isLineEndConvert">改行コード変換状況</param>
        public CharCodeConvertedEventArgs(string fileName, long size, string encoding, bool isEncodingConvert, bool isLineEndConvert)
        {
            FileName = fileName;
            Size = size;
            Encoding = encoding;
            IsEncodingConvert = isEncodingConvert;
            IsLineEndConvert = isLineEndConvert;
        }
        #endregion
    }
}
